The present invention relates to the field of integrated circuits and in particular, to an integrated circuit having selected volatility, selectable to operate as a nonvolatile programmable logic integrated circuit in a first mode or as a volatile programmable logic integrated circuit in a second mode.
Integrated circuits are important building blocks of the modern age. Technology continues to evolve and integrated circuits continue to provide improved functionality. As integrated circuits improve, so do the electronics systems that are built using integrated circuits. There are many types of integrated circuit such as memories, microprocessors, application specific integrated circuits (ASICs), and programmable logic. Programmable logic integrated circuits such as PALs, PLDs, FPGAs, LCAs, and others are becoming more complex and continually evolving to provide more user-programmable features on a single integrated circuit.
Modern programmable logic integrated circuits incorporate programmable logic including logic gates, products terms, or look-up tables. Some programmable logic integrated circuits also included embedded user-programmable memory or RAM. However, this RAM is volatile, which means once power is removed from the integrated circuit, the contents of the RAM are lost.
Further, for a nonvolatile PLD, user application configuration data is stored within the PLD package, and external data is not needed to make the device work at power-up. In contrast, for a volatile PLD, user application configuration data is lost with every power-down cycle. The PLD is configured on each power-up from data external to the PLD package.
Despite the success of programmable logic, there is a continuing desire to provide greater functionality in a programmable logic integrated circuit, but at the same time, provide greater performance. The programmable logic marketplace is divided into two different market segments, complex PLDs (CPLDS) and FPGAs. FPGAs typically have more programmable logic gates and more complexity than CPDs. CPLDs are typically nonvolatile PLDs that require no external source to configure the customer application into the programmable logic array. The FPGA is typically a volatile PLD, which usually needs an external source to configure the customer application into the programmable logic array for each power-up cycle.
For equal architectures and densities, a CPLD is more expensive to manufacture than an FPGA. The CPLD has a more expensive processing cost to add special transistors needed for embedded nonvolatile memory. The CPLD also has lower yield due to the complexities of the nonvolatile memory. The CPLD die size is larger because it has a PLD architecture and the nonvolatile memory and its associated overhead.
The price customers have been willing to pay in the market for CPLDs is higher than FPGAs. The higher price is justified by the nonvolatile, instant-on capabilities of the CPLD. This premium is even higher than the sum of an FPGA and an external nonvolatile device used for power-up configuration. This is a cost for a manufacturer to fabricate and inventory both volatile and nonvolatile devices. And some nonvolatile devices may be fully functional logically, but the nonvolatile memory is not fully functional. It would be cost effective to be able to use such devices as volatile devices rather than throw them away.
Therefore, there is a need for a programmable logic integrated circuit with selected volatility, which is capable of addressing the needs of the marketplace for nonvolatile and volatile devices.